import type { App } from 'vue'
// 需要全局引入一些组件，如ElScrollbar，不然一些下拉项样式有问题
import { ElLoading, ElScrollbar, ElButton, ElForm } from 'element-plus'
import * as ElIconModules from '@element-plus/icons-vue'
import 'element-plus/theme-chalk/display.css'
const plugins = [ElLoading]

const components: any = [ElScrollbar, ElButton, ElForm]

export const setupElementPlus = (app: App<Element>) => {
  plugins.forEach(plugin => {
    app.use(plugin)
  })

  // 需要全局引入一些组件，如ElScrollbar，不然一些下拉项样式有问题
  components.forEach(component => {
    app.component(component.name, component)
  })

  // 统一注册element-plus的图标，主要用于element-plus自身组件的icon绑定
  for (const iconName in ElIconModules) {
    if (Reflect.has(ElIconModules, iconName)) {
      const item = ElIconModules[iconName]
      app.component(iconName, item)
    }
  }
}
